﻿//#include<stdio.h>//打印100~200的素数（方法一）
//int main76()
//{
//	int i = 0;
//	for (i = 100; i <= 200; i++)
//	{
//		int j = 0;
//		//判断i是否为素数
//		int flag = 1;//定义变量记录当前数是否为素数，假设是素数，变量值为1 
//		//遍历2~当前数-1
//		for (j = 2; j < i; j++)
//		{
//			//存在⼀个数可以整除当前数
//			if (i % j == 0)
//			{
//				flag = 0;//不是素数
//				break;
//			}//细节；不能用else语句，因为9不是素数，但是9不能除二，仍会执行else语句。拿一个数字除除不尽，不代表他就是素数。
//		}
//		if (flag == 1)//是素数就打印
//			printf("%d ", i);
//	}
//	return 0;
//}
//方法二：优化存储空间
	/*倘若能写成n=a*b的形式，不可能a与b同时大于根号n
	 即a与b中有一个数字<=根号n
	 如果n不是素数，一定有一个因子在2~根号n之间
	//如果在2~根号n之间没有找到能够整除n的数字，那么n就是素数。
	*/
//#include<stdio.h>
//#include<math.h>
//int main76()
//{
//	int i = 0;
//	for (i = 100; i <= 200; i++)
//	{
//		int j = 0;
//		//判断i是否为素数
//		int flag = 1;//定义变量记录当前数是否为素数，假设是素数，变量值为1 
//		//遍历2~当前数-1
//		for (j = 2; j < sqrt(i); j++)
//		{
//			//存在⼀个数可以整除当前数
//			if (i % j == 0)
//			{
//				flag = 0;//不是素数
//				break;
//			}//细节；不能用else语句，因为9不是素数，但是9不能除二，仍会执行else语句。拿一个数字除除不尽，不代表他就是素数。
//		}
//		if (flag == 1)//是素数就打印
//			printf("%d ", i);
//	}
//	return 0;
//方法三：优化；素数只能在奇数中产生
//int main76()
//{
//	int i = 0;
//	for (i = 101; i <= 200; i+=2)
//	{
//		int j = 0;
//		//判断i是否为素数
//		int flag = 1;//定义变量记录当前数是否为素数，假设是素数，变量值为1 
//		//遍历2~当前数-1
//		for (j = 2; j < i; j++)
//		{
//			//存在⼀个数可以整除当前数
//			if (i % j == 0)
//			{
//				flag = 0;//不是素数
//				break;
//			}//细节；不能用else语句，因为9不是素数，但是9不能除二，仍会执行else语句。拿一个数字除除不尽，不代表他就是素数。
//		}
//		if (flag == 1)//是素数就打印
//			printf("%d ", i);
//	}
//	return 0;


